/**
 * @author liangxi
 * @since 2023/12/21
 */

#ifndef DESIGNPATTERN_PIZZA_H
#define DESIGNPATTERN_PIZZA_H

#include <string>
#include <iostream>
#include <vector>

namespace Factory_SF {

    class Pizza {
    public:
        virtual ~Pizza() = default;

        std::string getName() const { return this->name; }

        void prepare() const { std::cout << "Preparing " << this->name << std::endl; }

        void bake() const { std::cout << "Baking " << this->name << std::endl; }

        void cut() const { std::cout << "Cutting " << this->name << std::endl; }

        void box() const { std::cout << "Boxing " << this->name << std::endl; }

        std::string toString() const;

        std::string name;
        std::string dough;
        std::string sauce;
        std::vector<std::string> toppings;
    };

} // Factory_SF

#endif //DESIGNPATTERN_PIZZA_H
